// SPDX-License-Identifier: BSD-3-Clause
/*
 * Copyright (c) 2020, Konrad Dybcio
 */

/dts-v1/;

#include "sdm630.dtsi"
#include "pm660.dtsi"
#include "pm660l.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/input/gpio-keys.h>

/ {
	/* required for bootloader to select correct board */
	qcom,msm-id = <318 0>;
	qcom,board-id = <8 1>;
	qcom,pmic-id = <0x1001b 0x101011a 0x00 0x00 0x1001b 0x201011a 0x00 0x00>;

	/* This part enables graphical output via bootloader-enabled display */
	chosen {
		bootargs = "earlycon=tty0 console=tty0";

		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		stdout-path = "framebuffer0";

		framebuffer0: framebuffer@9d400000 {
			compatible = "simple-framebuffer";
			reg = <0 0x9d400000 0 (1920 * 1080 * 4)>;
			width = <1080>;
			height = <1920>;
			stride = <(1080 * 4)>;
			format = "a8r8g8b8";
			status= "okay";
		};
	};

	gpio_keys {
		status = "okay";
		compatible = "gpio-keys";
		input-name = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;
		autorepeat;

		camera_focus {
			label = "Camera Focus";
			gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
			linux,input-type = <1>;
			linux,code = <KEY_CAMERA_FOCUS>;
			debounce-interval = <15>;
		};

		camera_snapshot {
			label = "Camera Snapshot";
			gpios = <&tlmm 113 GPIO_ACTIVE_LOW>;
			linux,input-type = <1>;
			linux,code = <KEY_CAMERA>;
			debounce-interval = <15>;
		};

		vol_down {
			label = "Volume Down";
			gpios = <&pm660l_gpios 7 GPIO_ACTIVE_LOW>;
			linux,input-type = <1>;
			linux,code = <KEY_VOLUMEDOWN>;
			gpio-key,wakeup;
			debounce-interval = <15>;
		};
	};

	reserved-memory {
		#address-cells = <2>;
		#size-cells = <2>;
		ranges;

		ramoops@ffc00000 {
			compatible = "ramoops";
			reg = <0x0 0xffc00000 0x0 0x100000>;
			record-size = <0x10000>;
			console-size = <0x60000>;
			ftrace-size = <0x10000>;
			pmsg-size = <0x20000>;
			ecc-size = <16>;
			status = "okay";
		};

		debug_region@ffb00000 {
			reg = <0x00 0xffb00000 0x00 0x100000>;
			no-map;
		};

		removed_region@85800000 {
			reg = <0x00 0x85800000 0x00 0x3700000>;
			no-map;
		};
	};

	soc {
		sdhci@c0c4000 {
			status = "okay";

			mmc-ddr-1_8v;
			/* SoMC Nile platform's eMMC doesn't support HS200 mode */
			mmc-hs400-1_8v;
		};

		i2c@c175000 {
			status = "okay";

			/* Synaptics touchscreen */
		};

		i2c@c176000 {
			status = "okay";

			/* SMB1351 charger */
		};

		serial@c1af000 {
			status = "okay";
		};

		/* I2C3, 4, 5, 7 and 8 are disabled on this board. */

		i2c@c1b6000 {
			status = "okay";

			/* NXP NFC */
		};
	};
};
